// src/api/material.js
import request from '../utils/request';

/**
 * 获取课程的所有章节
 * @param {number} courseId 课程ID
 * @returns {Promise} 返回章节列表
 */
export function getCourseChapters(courseId) {
  return request({
    url: `/api/chapters/course/${courseId}`,
    method: 'get'
  });
}

/**
 * 获取章节下的所有资料
 * @param {number} courseId 课程ID
 * @param {number} chapterId 章节ID
 * @returns {Promise} 返回资料列表
 */
export function getChapterMaterials(courseId, chapterId) {
  return request({
    url: `/api/materials/${courseId}/chapter/${chapterId}`,
    method: 'get'
  });
}

/**
 * 下载资料
 * @param {number} materialId 资料ID
 * @returns {Promise} 返回资料文件
 */
export function downloadMaterial(materialId) {
  return request({
    url: `/api/materials/${materialId}/download`,
    method: 'get',
    responseType: 'blob'
  });
}

/**
 * 标记资料为已完成
 * @param {number} userId 用户ID
 * @param {number} materialId 资料ID
 * @returns {Promise} 返回操作结果
 */
export function markMaterialAsCompleted(userId, materialId) {
  return request({
    url: `/api/progress/material/${materialId}/user/${userId}/complete`,
    method: 'post'
  });
}

/**
 * 获取用户已完成的资料列表
 * @param {number} userId 用户ID
 * @param {number} courseId 课程ID
 * @returns {Promise} 返回已完成资料ID列表
 */
export function getCompletedMaterials(userId, courseId) {
  return request({
    url: `/api/progress/materials/user/${userId}/course/${courseId}/completed`,
    method: 'get'
  });
}

/**
 * 删除资料
 * @param {number} materialId 资料ID
 * @returns {Promise} 返回操作结果
 */
export function deleteMaterial(materialId) {
  return request({
    url: `/api/materials/${materialId}`,
    method: 'delete'
  });
}

/**
 * 获取用户在课程中的角色
 * @param {number} courseId 课程ID
 * @param {number} userId 用户ID
 * @returns {Promise} 返回用户角色
 */
export function getUserRole(courseId, userId) {
  return request({
    url: `/api/exercises/role`,
    method: 'get',
    params: {
      courseId,
      userId
    }
  });
}